#ifndef __solution_H__
#define __solution_H__

#include <coordinate.h>
#include <iostream>
#include <list>
#include <sensor.h>

using namespace std;

class Solution {

public:
	struct Item {
		Coordinate coordinate;
		Sensor sensor;
		Item();
		Item(Coordinate &coordinate, Sensor sensor);
	};

private:
	list< Solution::Item > solution;
	int money;

public:
	Solution();
	const bool empty() const;
	void push(Coordinate &coordinate, Sensor sensor);
	void pop();
	const Item& back() const;
	const int price() const;
	friend ostream& operator<<(ostream&, const Solution&);
};

ostream& operator<<(ostream&, const Solution&);

#endif /* __solution_H__ */